public class Liczba
{
	
	public int n;

	Liczba()
	{	
		n=0;
	}
	Liczba(int m)
	{
		n=m;
	}
	public int wartosc (char znak)
	{
		
		if(znak=='0')
			return 0;
		else if(znak=='1')
			return 1;
		else if(znak=='2')
			return 2;
		else if(znak=='3')
			return 3;
		else if(znak=='4')
			return 4;
		else if(znak=='5')
			return 5;
		else if(znak=='6')
			return 6;
		else if(znak=='7')
			return 7;
		else if(znak=='8')
			return 8;
		else if(znak=='9')
			return 9;
		else if(znak=='A')
			return 10;
		else if(znak=='B')
			return 11;
		else if(znak=='C')
			return 12;
		else if(znak=='D')
			return 13;
		else if(znak=='E')
			return 14;
		else if(znak=='F')
			return 15;
		return 0;
		
	}
	
	public int potega(int podstawa, int wykladnik)
	{	
		int liczba=1;
		
		for(int i=0; i<wykladnik; i++)
		{
			liczba = liczba*podstawa;
		}
		return liczba;
	}
	
	Liczba(String m, int podstawa)
	{	
		int p=0;
		int liczba=0;
		for(int i=m.length()-1; i>=0; i-- )
		{
			
			liczba=liczba+(wartosc( m.charAt(i) ) * potega(podstawa,p) );
			p++;
		}
		n=liczba;
	}
	
	public char znak (int wartosc)
	{	
		if(wartosc==0)
			return '0';
		else if(wartosc==1)
			return '1';
		else if(wartosc==2)
			return '2';
		else if(wartosc==3)
			return '3';
		else if(wartosc==4)
			return '4';
		else if(wartosc==5)
			return '5';
		else if(wartosc==6)
			return '6';
		else if(wartosc==7)
			return '7';
		else if(wartosc==8)
			return '8';
		else if(wartosc==9)
			return '9';
		else if(wartosc==10)
			return 'A';
		else if(wartosc==11)
			return 'B';
		else if(wartosc==12)
			return 'C';
		else if(wartosc==13)
			return 'D';
		else if(wartosc==14)
			return 'E';
		else if(wartosc==15)
			return 'F';
		return 0;
	}
	public String zapis(int podstawa)
	{	
		String liczba ="";
		int resztazdzielenia;
		int kopian = n;
		
		
		while(kopian>0)
		{
			resztazdzielenia=kopian % podstawa; 
		
			liczba = liczba + znak(resztazdzielenia);
			kopian = kopian/podstawa;
		}
		
		String liczbaOdwrocona="";
		for(int i=liczba.length()-1; i>=0; i--)
		{	
			liczbaOdwrocona = liczbaOdwrocona + liczba.charAt(i); //charAt(i) pobiera i-ty znak stringa
		}
		return liczbaOdwrocona;
	}
	
	public static boolean sprawdzPodstawe(int podstawa)
	{
		boolean sprawdz = true;
		if(podstawa < 2 || podstawa > 16)
		sprawdz = false;
		return sprawdz;
		
	}


public static void main(String[] args)
	{
		int n=0;
		Liczba liczba;
		for(int i=0; i<args.length; i=i+2)
		{
			try
			{
				n=Integer.parseInt(args[i+1]);
			}
			catch(NumberFormatException ex)
			{
				System.out.println("niepoprawna podstawa");
				continue;
			}
			liczba = new Liczba (args[i],n);
			
			for(int j=2; j<=16; j++)
			{	
				System.out.print(liczba.zapis(j) + " ");
			}
		}
	
	}
}